'''
定义一个请求钩子：在请求进来之前得到request中携带的token，开始验证token
'''
from flask import g,request
from comment.utils.tokens_pyjwt import verify_tokens

def jwt_request_auth():
    '''
    从request中获取token，并且验证token，验证成功之后把用户id保存到全局变量g中
    :return:
    '''
    g.user_id = None  # 定义变量
    # 前端代码是是把token携带请求头中
    # 获取token
    token = request.headers.get('token')
    # 判断是否有token
    if token is not None:
        # 如果token存在，开始校验token
        result = verify_tokens(token)
        # 校验通过后，result返回一个字典，字典包括id和exp
        if 'id' in result:
            # 只要字典中包含id，表示校验成功
            g.user_id = result['id']